package main.leetcode.clockin.July;

/**
 * 1025. 除数博弈
 *
 * <p>爱丽丝和鲍勃一起玩游戏，他们轮流行动。爱丽丝先手开局。
 *
 * <p>最初，黑板上有一个数字 N 。在每个玩家的回合，玩家需要执行以下操作：
 *
 * <p>选出任一 x，满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作，就会输掉游戏。
 *
 * <p>只有在爱丽丝在游戏中取得胜利时才返回 True，否则返回 false。假设两个玩家都以最佳状态参与游戏。
 *
 * <p>示例 1：输入：2 输出：true 解释：爱丽丝选择 1，鲍勃无法进行操作。
 *
 * <p>示例 2：输入：3 输出：false 解释：爱丽丝选择 1，鲍勃也选择 1，然后爱丽丝无法进行操作。
 *
 * <p>提示：1 <= N <= 1000
 */
public class day24 {
    public boolean divisorGame(int N) {
        // 如果是奇数
        // 奇数的因数全为奇数，因此选出的x必为奇数，而交给另一方的N-x一定是个偶数，
        // 如果Alice拿到奇数，那2就会落到Bob头上，Alice最终输了

        // 如果是偶数
        // Alice只用选x=1，让Bob拿到奇数就可以赢。
        return (N & 1) == 0;
    }
}
